<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <script>
            /* 
                 [9,1,3,2,8,0,5,7,6,4]

                 思路一：
                    9, 1, 3, 2, 8, 0, 5, 7, 6, 4
                    - 比较相邻的两个元素，然后根据大小来决定是否交换它们的位置
                    - 例子：
                        第一次排序：1, 3, 2, 8, 0, 5, 7, 6, 4, 9
                        第二次排序：1, 2, 3, 0, 5, 7, 6, 4, 8, 9
                        第三次排序：1, 2, 0, 3, 5, 6, 4, 7, 8, 9
                        ...
                        倒数第二次 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

                    - 这种排序方式，被称为冒泡排序，冒泡排序是最慢的排序方式，
                        数字少还可以凑合用，不适用于数据量较大的排序

                思路2：
                    9, 1, 3, 2, 8, 0, 5, 7, 6, 4
                    - 取出一个元素，然后将其他元素和该元素进行比较，如果其他元素比该元素小则交换两个元素的位置
                    - 例子：
                        0, 9, 3, 2, 8, 1, 5, 7, 6, 4
                        0, 1, 9, 3, 8, 2, 5, 7, 6, 4
                        0, 1, 2, 9, 8, 3, 5, 7, 6, 4
                        ...

                    - 选择排序

            */

            const arr = [9, 1, 3, 2, 8, 0, 5, 7, 6, 4]
            for (let j = 0; j < arr.length - 1; j++) {
                for (let i = 0; i < arr.length - 1; i++) {
                    // arr[i] 前边的元素 arr[i+1] 后边元素
                    if (arr[i] < arr[i + 1]) {
                        // 大数在前，小数在后，需要交换两个元素的位置
                        let temp = arr[i] // 临时变量用来存储arr[i]的值
                        arr[i] = arr[i + 1] // 将arr[i+1]的值赋给arr[i]
                        arr[i + 1] = temp // 修改arr[i+1]的值
                    }
                }
            }

            console.log(arr)
        </script>
    </head>
    <body></body>
</html>
